package com.guomei.mapper.curse;

import com.guomei.bean.curse.CourseChapter;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 课程章节表数据访问接口
 */
@Mapper
public interface CourseChapterMapper {
    /**
     * 根据ID查询章节
     */
    CourseChapter selectById(Long id);

    /**
     * 根据课程ID查询章节列表
     */
    List<CourseChapter> selectByCourseId(Long courseId);

    /**
     * 查询所有章节
     */
    List<CourseChapter> selectAll();

    /**
     * 根据条件查询章节
     */
    List<CourseChapter> selectByCondition(CourseChapter courseChapter);

    /**
     * 根据课程ID查询章节列表（包含讲座信息）
     */
    List<CourseChapter> selectByCourseIdWithLectures(Long courseId);

    /**
     * 根据条件查询章节（包含讲座信息）
     */
    List<CourseChapter> selectByConditionWithLectures(CourseChapter courseChapter);

    /**
     * 新增章节
     */
    int insert(CourseChapter courseChapter);

    /**
     * 批量新增章节
     */
    int batchInsert(@Param("chapters") List<CourseChapter> chapters);

    /**
     * 根据ID更新章节
     */
    int updateById(CourseChapter courseChapter);

    /**
     * 根据ID删除章节
     */
    int deleteById(Long id);

    /**
     * 批量删除章节
     */
    int batchDelete(@Param("ids") List<Long> ids);

    /**
     * 根据课程ID删除章节
     */
    int deleteByCourseId(Long courseId);
}
